[レポート] re:Invent 2024 : SaaS on AWS セッションまとめ #AWSreInvent
いわさです。
re:Invent 2024 でも SaaS on AWS 関係のセッションやワークショップに注目していました。
今年も Breakout Session については帰国後に見れるだろうということで、現地で参加したもの以外は帰国後に視聴出来ました。
ということで、今年も SaaS on AWS の関係セッションのポイントをまとめてみることに。
アーカイブ動画も記事に埋め込んでおくので、ポイントを見てより詳細を確認したくなった方は是非動画も視聴してみてください。
ちなみに昨年の 2023 年版はこちらです。
re:Invent 2024 の SaaS on AWS セッション
SaaS on AWS のセッションは、基本的に「SAS」というプレフィックスのセッション番号のものになるのですが、一部マルチテナント SaaS に関係していそうなものや、SAS の中で SaaS セッションとして紹介されていたものも今年は取り上げました。
まず、セッションタイプごとに SaaS on AWS に関係するものを以下にまとめました。
Breakout Sessions
セッションコード | タイトル | YouTube |
---|---|---|
SAS305 | SaaS architecture pitfalls: Lessons from the field | ◯ |
SAS306 | SaaS storage strategies: Scaling, securing & tuning multi-tenant data | ◯ |
SAS307 | Supporting federated identity in multi-tenant environments | ◯ |
SAS315 | SaaS meets cell-based architecture: A natural multi-tenant fit | ◯ |
SAS406 | Accelerating multi-tenant development with the SaaS Builder Toolkit | ◯ |
SAS407 | Generative AI meets multi-tenancy: Inside a working solution | ◯ |
PEX304 | Next generation SaaS: Scale, resilience, and operational efficiency | ◯ |
Chalk Talks
セッションコード | タイトル | YouTube |
---|---|---|
SAS308 | Solving the multi-tenant DevOps puzzle: Patterns and strategies | - |
SAS309 | SaaS migration and modernization: Balancing strategy and reality | - |
SAS310 | Demystifying SaaS networking, connectivity, and routing strategies | - |
SAS311 | Optimizing multi-tenant Amazon EKS SaaS architectures | - |
SAS312 | Next-generation SaaS tenant isolation strategies | - |
SAS313 | Designing SaaS architectures that support global growth and scale | - |
SAS314 | SaaS architecture patterns: What tools/strategies belong on my radar? | - |
API401 | Multi-tenant Amazon SQS queues: Mitigating noisy neighbors | - |
ARC316 | SaaS meets testing: Validating multi-tenant scale, resilience, and operations | - |
Workshops
セッションコード | タイトル | YouTube |
---|---|---|
SAS301 | Solving the SaaS cost-per-tenant puzzle: An inside look | - |
SAS304 | Inside the SaaS Builder Toolkit: A hands-on deep dive | - |
SAS402 | SaaS survivor: Building a rich multi-tenant operations experience | - |
SAS403 | SaaS microservices deep dive: Multi-tenancy meets microservice | - |
SAS404 | Automate SaaS provisioning & deployment with Kubernetes DevOps tooling | - |
SAS405 | SaaS and RAG: Maximizing generative AI value in multi-tenant solutions | - |
ARC402 | Scaling multi-tenant SaaS with a cell-based architecture | - |
Builders' Sessions
セッションコード | タイトル | YouTube |
---|---|---|
SAS302 | Stressing and validating your multi-tenant SaaS architecture | - |
SAS303 | Zero to SaaS in one hour | - |
各ブレークアウトセッションのポイントを抜粋して紹介
で、この記事では上記のうち、YouTube で動画がアーカイブ動画が公開されているブレークアウトセッションについてポイントまとめと所感をまとめてみました。サマリで雰囲気をささっとつかめると思います。
注目要素としては SaaS Builder Toolkit、生成 AI、セルベースアーキテクチャあたりでしょうか。
それではどうぞ。
SAS305 SaaS architecture pitfalls: Lessons from the field
概要
過去7年以上にわたり、企業によるSaaSソリューションの構築を支援してきたことは目を見張るものがあります。AWS は、SaaS ソリューションを構築する際にチームがしばしば直面するダイナミクス、課題、落とし穴について、優れた洞察を得ています。このセッションでは、SaaS サービスの規模、成長、コスト効率に影響を与えた一般的な技術テーマやビジネステーマなど、さまざまなパターンを探ります。これは、これらの傾向を把握し、チームが同じ罠に陥らないようにするのに役立つガイダンスを概説することです。SaaS ビジネスの成功を損なう技術的なニュアンス、アーキテクチャ上の課題、運用上の影響について聞いてください。
ポイントまとめと所感
実はこちらは re:Invent 2023 で同じセッションタイトルがあってベースというか流れについては再演です。
ただし、紹介されている「SaaS の落とし穴」である 5 つのポイントが去年と違っており、中身は全く別のセッションでした。
左が re:Invent 2023、右が re:Invent 2024
各「落とし穴」とそれに対するアプローチポイントだけまとめておきました。
- 落とし穴1: コントロールプレーンがない
- SaaS Builder Toolkit を活用して統合されたコントロールプレーンを実装
- アプリケーションプレーンとコントロールプレーンを分離し、管理者向けダッシュボードで一元管理
- 落とし穴2: Identityの軽視
- 早期段階からIdentity管理を設計に組み込む
- 例)Amazon Cognito を使用してマルチテナント環境に適したIdentity管理を実装
- 落とし穴3: 不十分なTelemetry(可観測性)
- OpenTelemetry を活用してアプリケーション全体の分散トレーシングを実装
- AWS X-Ray を使用してアプリケーションのパフォーマンスとエラーを詳細に監視
- 落とし穴4: Revenue Leakage(収益漏れ)
- Stripe(決済処理)、Amberflo(使用量ベースの課金)、Schematic(機能フラグとエンタイトルメント管理)などのサービスを活用して詳細な使用量追跡と課金システムを実装
- CUR を活用してテナントごとのリソース使用量を詳細に追跡
- 落とし穴5: テストへの過小投資
- Gremlin(カオスエンジニアリングプラットフォーム)や AWS FIS を使用したカオスエンジニアリングテストを実施する
- 落とし穴6: データの分離と保護の失敗
- AWS Nitro Enclaves を活用してセキュアな実行環境を構築
- AWS KMS を使用してデータ暗号化を強化
- Skyflow(データプライバシープラットフォーム)やData Privacy Vault を実装して機密データを保護し、アクセスを制御
やはり、SaaS Builder Toolkit が出たのでコントロールプレーン周りの推しを感じます。
また、昨今 AI アプリケーションが増えてきたこともあり、データプライバシー保護ソリューション周りの話が出ていました。
テナントコストについては結局昨年から引き続きでネイティブのソリューションは出ていないのですよね。泥臭くやるしかないかなーという感じがします。
全体通していくつかサードパーティソリューションについても言及されているのが印象的です。
SAS306 SaaS storage strategies: Scaling, securing & tuning multi-tenant data
概要
SaaS ビルダーは、マルチテナントストレージ戦略を選択する際に、競合するさまざまなニーズのバランスを取る必要があります。どのように拡張するか、近隣の雑音を避ける方法、テナントデータを分離する方法、リモートデータをサポートする方法、ワークロードをシャードする方法など、考慮すべき要素は数多くあります。このセッションでは、ビジネスの発展に合わせて進化できるスケーラブルなマルチテナントデータアーキテクチャを設計する際に適用されるさまざまな戦略とパターンについて説明します。データのパーティショニングにとどまらず、難しいマルチテナントストレージモデルに対処し、コスト、運用、パフォーマンスの効率のバランスを取る方法を詳しく見ていきます。
ポイントまとめと所感
マルチテナントストレージ戦略における対処すべき課題と対応例について言及されていました。
- 拡張性の確保するアプローチをいくつか
- RDS Proxyを使用してコネクションプーリング管理する
- Amazon Aurora Limitless Databaseによる自動シャーディング
- ノイジーネイバー問題の対策
- サイロモデルの採用(テナントごとに専用リソースを割り当て)
- テナントデータの分離
- サイロモデルでの専用データベース割り当て
- プールモデルでのスキーマレベルまたはテーブルレベルでの分離
- スケーラブルなマルチテナントデータアーキテクチャの設計
- サイロモデルとプールモデルの適切な組み合わせ(ブリッジモデル)
- テナントのティアに応じたデプロイメントモデルの選択
- Amazon Aurora Limitless Databaseを活用してワークロードのシャーディングを行う
- コスト、運用、パフォーマンス効率のバランスどうやって取るか
- プールモデルの採用による効率性の向上
- Amazon S3やAmazon DynamoDBを適切に活用する
従来どおりではありますが、ところどころ Aurora Limitless Database が入ってきてますね。マルチテナント SaaS アーキテクチャとの相性はかなり良いと思うんですよ。今後活用例が増えてきそうな気がしています。
このセッションではシャードキーにテナント ID を使っています。
SAS307 Supporting federated identity in multi-tenant environments
概要
SaaSプロバイダーは、テナントが内部および外部でホストされているIDプロバイダーからシステムにアクセスできるようにするために、さまざまな認証エクスペリエンスをサポートする必要があることがよくあります。これは、ユーザーのライフサイクル全体を自分で管理したいと考えることが多いプロバイダーにとっては難しい場合があります。このセッションでは、認証フェデレーションがこの問題にどのように対処しているのかを探り、マルチテナントのユースケースを対象とするフェデレーションのさまざまな微妙な違いに焦点を当てます。外部 IdP を OpenID Connect (OIDC) とフェデレートするために使用される具体的な実装戦略、コードサンプル、および設定モデルと Amazon Cognito を SaaS アイデンティティハブとして使用する SAML ワークフローについて説明します。
ポイントまとめと所感
このセッション、かなり Cognito 利用に寄せたというか焦点を当てたセッションになってます。
実装周りも結構細かく触れられています。
- CognitoをSaaSアイデンティティハブとして使用する
- Cognitoのユーザープールを活用してSaaSアイデンティティを管理
- テナントIDをCognitoのカスタム属性として追加
- Cognitoでのフェデレーション認証
- CognitoのFederation機能を利用してテナントが使いたいIDPと統合できる
- OIDCとSAMLプロトコルの両方をサポートしたよ
- テナントオンボーディング自動化、Cognitoだとこうやれば良い
- CognitoのAPIを使用してIDPメタデータを自動登録
- Lambda Triggerを活用してテナント固有のカスタマイズを実現
- CognitoのJWTトークンの活用(これはまぁ汎用的な話な気もする)
- IDトークンにテナント情報を含めて発行
- アプリケーション全体でこのトークンを使用してテナントコンテキストを維持
- Cognitoの設定とカスタマイズ
- Hosted UIのカスタマイズ方法
- 複数のIDPが存在する場合の動的な解決アプローチ
Cognito をハブとして使う場合のパターンが結構網羅されており良かったです。
SAS307_Supporting-federated-identity-in-multi-tenant-environments.pdf より
Cognito 使ってる、使う予定のある人にはこちらのセッションをおすすめしたい。
SAS315 SaaS meets cell-based architecture: A natural multi-tenant fit
概要
マルチテナントの SaaS アーキテクチャを構築するには、バランスを取る必要があります。コスト効率、スケール、レジリエンス、運用アジリティの適切な組み合わせを見つけるのは難しい場合があります。多くの場合、セルベースのアーキテクチャが最適なのはこの場合です。セルベースのモデルでは、テナントの分離、デプロイ、スケーリング、地域分散、階層化への新しいアプローチが可能になり、SaaS アーキテクチャと運用フットプリントにさまざまな新しい可能性がもたらされます。このセッションでは、セルベースのマルチテナントアーキテクチャについて詳しく説明し、このモデルを採用する際の戦略、パターン、考慮事項について説明します。
ポイントまとめと所感
このセッションはマルチテナント SaaS でセルベースアーキテクチャがどのように活用出来るのかなどが解説されています。
- メリット:
- セルで分離されるのでノイジーネイバーや様々な障害の影響範囲を狭くできる
- セルごとに細かくパフォーマンス調整できる
- セル単位でデプロイできるのでリスク軽減や問題特定がしやすかったり、A/Bテストなど色々な戦略が取りやすい
- 特に多様な顧客ニーズ(コンプライアンス、性能、地域特性など)に応じてセル構成を調整してビジネス要件に対応しやすくなる
- デメリット:
- セル管理(設計とテナント配置戦略)による複雑化
- セル間の通信などの通信オーバーヘッドや過剰プロビジョニング
- セル単位でモニタリングしたりデータ集約が必要になる
- セルベースアーキテクチャの場合、既存システムからの移行がちょっと大変そう
セルベースアーキテクチャちょっと注目浴びてますが使い所結構選ぶような気もしています。
SaaS の分離やティアリング戦略との相性は良さそうだなと思いますが、デメリットも結構あるのでトレードオフ必要になりますね。セッション自体はそのあたりもしっかり言及されていてとても良かったです。
SAS406 Accelerating multi-tenant development with the SaaS Builder Toolkit
概要
SaaS Builder Toolkit(SBT)は、SaaS をマルチテナント環境の作成に使用できる一連のビルディングブロックに分解するビルド済みのツールセットを開発者に提供します。このセッションでは、このツールキットの流動的な部分を掘り下げて、コアコンポーネント、アーキテクチャ、拡張性モデルの内部動作を探ります。また、実際に動作するマルチテナントアプリケーションをゼロから作成した SBT の実例も見ていきます。さらに、コントロールプレーンの構築、テナントのオンボーディング、テナントの認証、階層化のサポート、テナントリソースのプロビジョニングなどのコアコンセプトに SBT がどのように対処するかについても説明します。
ポイントまとめと所感
こちらもセッションレポートを個別に作成済みです。詳しくはこちらもどうぞ!
CDK ベースのアプリケーションに SaaS Builder Toolkit を組み込んでコントロールプレーンなど、マルチテナント SaaS のコア機能を導入しましょう。という感じです。
SAS407 Generative AI meets multi-tenancy: Inside a working solution
概要
マルチテナントは、ジェネレーティブAIの領域に新たなアーキテクチャ、設計、実装に関する考慮事項を追加します。このセッションでは、実際に機能するマルチテナントのジェネレーティブ AI ソリューションを掘り下げ、テナントの分離、テナントのオンボーディング、ノイズの多いネイバー、階層化などの実装にテナンシーがどのように影響するかを詳しく見ていきます。個々のテナントごとに差別化されたジェネレーティブ AI 体験をサポートする方法を学びましょう。目標は、Amazon Bedrock、ナレッジベース、ベクターデータベースなどを使用する完全な SaaS エクスペリエンスのすべての変動部分を詳細に把握することです。
ポイントまとめと所感
このセッションではマルチテナントな生成 AI アプリケーションを構築する際のソリューションが紹介されています。
ざっくりまとめるとテナント分離やノイジーネイバー対策、オンボーディングなど、マルチテナント SaaS で必要な対策を行う必要があるのですが、Amazon Bedrock でそれを行うためにどういうアプローチを取ることが出来るのか解説されています。
生成 AI ワークロードの場合でもティアリング(Basic/Premium など)の概念を導入し、ティアごとにアーキテクチャを分けていました。
Basic ティアではプールモデルで RAG を、Premium ティアではサイロモデルで Fine-tuning を使う方法が紹介されていました。
プールモデルのデータ分離については、S3 はテナントごとにプレフィックスを分ける、OpenSearch については共有コレクション内にテナントごとのインデックスを作成するというアプローチが取られていました。
また、Knowledge base についてはプールモデルの場合でもテナントごとに用意し、IAM で多重のテナント分離を行うような仕組みとなっていました。
これによって例えば OpenSearch 側のデータアクセスポリシーで、特定のテナントのKnowledge Baseロールがそのテナント専用のインデックスにのみアクセスできるように制御されています。なるほどなぁ。
また、ノイジーネイバー対策としてはテナントごとのトークン使用量を DynamoDB で管理し、API Gateway のオーソライザーでトークン使用量をチェックして必要に応じてスロットリングさせるアプローチが紹介されており興味深かったです。
大きくは以下な感じでしょうか。オンボーディング自動化やらなにやらありますが、そのあたりは大きくは通常のマルチテナント SaaS と変わらない感じです。
- Basic/Premiumティア戦略でコスト最適化する
- S3プレフィックスとOpenSearchインデックスでデータ分離できる
- IAMとスコープ付き認証情報でアクセス制御する
- APIレベルスロットリングでリソース制御
PEX304 Next generation SaaS: Scale, resilience, and operational efficiency
概要
マルチテナント型の SaaS ビルダーは、スケーリング、レジリエンス、自動化、運用効率といった一連の課題に取り組む必要があります。ツールは存在しますが、今こそ「次は何か?」と問いかける時です。AWS パートナー向けのこのセッションでは、現在の境界を超える新しいマルチテナントアーキテクチャと運用戦略について概説します。収集する必要のあるデータ、収集すべき洞察、新しいツールやメカニズムについて詳しく見ていきましょう。マルチテナント運用への新しいアプローチを探求し、ジェネレーティブAIが、SaaSビジネスの運用プロファイルに影響を与えるスケーリング、レジリエンス、隔離、階層化ポリシーのビューをどのように豊かにするかを見ていきます。このセッションは AWS パートナーを対象としています。
ポイントまとめと所感
こちらについてはセッションレポート作成済みなので所感は割愛します。以下ご参照ください。
セッション内では「次世代 SaaS の要素」がいくつか紹介されていました。
- セルベースアーキテクチャにおけるコントロールプレーンによるセル管理
- デジタルツインと Temporal Cloud を組み合わせて複雑な DevOps を管理
- Karpenter による EKS スケーリング管理
- リレーショナルデータベースの最新機能やサービスの活用(Data API、Neon、Aurora Limitless Database)
- 生成 AI の活用事例
さいごに
本日は AWS re:Invent 2024 の SaaS on AWS のセッションをまとめて紹介してみました。
個人的に注目しているのは SaaS Builder Toolkit と Aurora Limitless Database です。
コントロールプレーンの重要性は相変わらず語られていますし、Aurora Limitless Database はマルチテナント SaaS と相性良いと思います。
加えて、セルベースアーキテクチャや生成 AI 関係も注目度が高そうなので抑えておかねばな...という感じでしょうか。